// 可以利用线性筛法来求界每个数的欧拉函数
// 用线性的时间复杂度求出区间内的所有欧拉函数值
#include <iostream>
using namespace std;

typedef long long LL;
const int N = 1e6 + 10;

int primes[N], cnt, phi[N];
bool st[N];

void get_ola(int n)
{
    // 规定与1互质的数只有1
    phi[1] = 1;
    for (int i = 2; i <= n; ++i)
    {
        if (!st[i])
        {
            // 说明他是质数
            primes[cnt++] = i;
            // 质数与1~n-1中的所有数都互质
            phi[i] = i - 1;
        }
        for (int j = 0; primes[j] <= n / i; ++j)
        {
            st[primes[j] * i] = true;
            if (i % primes[j])
            {
                // 说明primes[j]比i的最小质因数小
                phi[primes[j] * i] = phi[i] * (primes[j] - 1);
            }
            else
            {
                phi[primes[j] * i] = phi[i] * primes[j];
                break;
            }
        }
    }
}

int main()
{
    int n;
    cin >> n;
    get_ola(n);
    LL ans = 0;
    for (int i = 1; i <= n; ++i)
        ans += phi[i];
    cout << ans << endl;
    return 0;
}